查看原文
其他

Meta Llama3:首个接近 GPT-4 级别的开源模型!

lencx 浮之静 2024-04-19

Llama3

模型简介

以下是目前已知关于 Meta Llama 3 的所有信息(Build the future of AI with Meta Llama 3[1]):

  • 训练了 15 万亿个 tokens

  • 发布了 70B 和 8B 模型

    • Llama-3-8B[2]:8B 参数基础模型

    • Llama-3-8B-Instruct[3]:基于 8B 参数基础模型的指令微调版本

    • Llama-3-70B[4]:70B 参数基础模型

    • Llama-3-70B-Instruct[5]:基于 70B 参数基础模型的指令微调版本

  • 8K 的上下文长度

  • 70B 模型在 MMLU[6](Massive Multitask Language Understanding)上得分 82,在人类评估上得分 81.7

  • 使用 128K 词汇的分词器,比常规使用少 15% tokens

  • 密集型模型架构

  • 在 2x 24K GPU 集群上训练

  • 都在人工注释的指令数据集上进行了指令调优

  • 开放访问,遵守 Meta Llama 的许可证和使用条款

接下来会发生:

  • 将 Llama 3 扩展到 400B+ 参数(正在训练中)

  • 在 MMLU 和 HumanEval[7] 上的 Instruct 得分分别超过 86.1 和 84.1

  • 将支持多种语言,更高的上下文长度

如何使用:

  • 可在 Transformers 中使用(Using 🤗 Transformers[8]

  • 可通过 MLX Community[9] 安装使用

  • 指令版本在 HuggingChat[10] 上可用(在设置中选择 meta-llama/Meta-Llama-3-70B-Instruct 模型即可)

  • 使用 TRL 进行微调(Fine-tuning with 🤗 TRL[11]

  • 通过推理端点部署

模型评估

在开发 Llama 3 的过程中,团队不仅关注模型在标准基准测试上的性能,还致力于提升模型在实际应用场景中的表现。为了实现这一目标,开发团队构建了一个包含 1,800 个提示的高质量人类评估集,这些提示覆盖了 12 个关键应用场景,包括提问建议、头脑风暴、分类、回答封闭问题、编程、创意写作、信息提取、扮演角色/人格、回答开放问题、推理、改写和总结等。

为了避免模型在该评估集上过拟合,即使是 Meta 自己的模型团队也无法访问这个评估集。此外,还进行了一系列人类评估,将 Llama 3 的表现与其他主流模型如 Claude Sonnet、Mistral Medium 和 GPT-3.5 进行了比较,这些比较结果通过一个图表进行展示。

X 评论

Jim Fan

@DrJimFan[12] 整理了一张表格(数据参考来自 openai/simple-evals[13]),并发帖称:即将推出的 Llama-3-400B+ 模型将是社区首次公开获取 GPT-4 级模型的关键时刻,这一发展将对众多研究项目和草根创业产生重大影响。目前,Llama-3-400B 仍在训练中,预计在未来几个月将进一步提升其性能。这种强大的技术支持将释放巨大的研究潜力,并预期将激发整个生态系统中的创新活力。

这是一张更直观的对比图:

Andrej Karpathy

@karpathy[14] 对 Llama 3 的发布进行了一些深入分析,并提出了个人请求。以下是整理后的内容。

规模 & 性能

Meta 发布了 8B 和 70B 的基础及微调版本,表现强劲,期待 @lmsysorg[15] 的排名结果。400B 模型仍在训练中,但性能已接近 GPT-4 的水平。

分词器(Tokenizer)

从 Llama 2 的 32K tokens 增至 Llama 3 的 128K tokens。增加的 token 数量可以更有效地压缩序列长度,减少 15% 的 token 使用,并改善下游任务的性能。

架构(Architecture)

与 Llama 2 相比,没有重大变化。现在所有规模的模型都采用分组查询注意力(GQA:Grouped Query Attention),这是一种在推理期间减小键值(keys/values)缓存大小的参数共享方案,有助于简化模型复杂性。

序列长度(Sequence length)

上下文窗口的最大 token 数从 Llama 2 的 4096 增至 8192。此增加受到欢迎,但与现代标准(如 GPT-4 的 128K)相比,增幅较小,许多人期待更大的提升。

训练数据(Training data)

Llama 2 使用了 2 万亿 tokens 进行训练,而 Llama 3 增至 15 万亿,包括更多关注于数据质量、编码 token 增加 4 倍,以及 30 种语言中 5% 的非英语 token(尽管这个比例较低,但模型主要以英语为主,超过 0% 已经是进步)。

扩展规律(Scaling laws)

用 15 万亿的大数据集训练 8B 参数的模型是不常见的,超出了 Chinchilla[16] 模型的“计算最优”点约 75 倍,这是创新且受欢迎的。这表明,即便在这一规模,模型在标准意义上似乎还没有“收敛”,意味着当前的大型语言模型可能被严重训练不足(可能低了大约 100-1000 倍或更多,远未达到它们的收敛点)。应该继续这一趋势以发布更多长时间训练的、更小的模型。

系统(Systems)

Llama 3 被记录使用了 16K GPU,观测吞吐量为 400 TFLOPS。虽然没有提及,但假设这些是以 fp16 运行的 H100,NVIDIA 宣传资料中的速度为 1,979 TFLOPS。但我们都知道他们的小星号(*带稀疏性)起了很大作用,实际上你可能想将这个数字除以 2,得到大约 990 的真实 TFLOPS。稀疏性为何计入 FLOPS?无论如何,400/990 ~= 40% 的利用率,在那么多 GPU 上还算不错。

总结(TLDR)

Llama 3 是一个非常有能力的模型发布。对 400B 模型也抱有高期望,这可能是第一个达到 GPT-4 级别的开源发布。许多人可能会希望更长的上下文长度。

值得注意的是:Llama 3 8B 实际上处于 Llama 2 70B 的水平,这取决于你从哪个角度看。这起初可能看起来让人困惑,但请注意前者训练了 15T tokens,而后者训练了 2T tokens。

个人请求

希望有比 8B 更小的模型,用于教育、测试和可能的嵌入式应用等。理想情况下是在 100M 和 1B 规模。

模型强度

  • Llama 3 8B:训练了 130 万 GPU 小时,吞吐量为 400 TFLOPS。因此,总 FLOPs 数量约为:1.3e6 小时 * 400e12 FLOP/s * 3600 s/小时 ~= 1.8e24。通过另一种估算方法,即 FLOPs = 6ND(N 是参数,D 是 token),可以得到:6 * 8e9 * 15e12 = 7.2e23。这两个结果应该是一致的,也许有些数字有所调整。初步估计 Llama 3 8B 是一个约 2e24 的模型。

  • Llama 3 70B:6.4e6小时 * 400e12 FLOP/s * 3600 秒/小时 ~= 9.2e246 * 70e9 * 15e12 = 6.3e24。因此,Llama 3 70B 是一个约 9e24 的模型。

  • Llama 3 400B:如果在相同数据集上训练,预计将达到 4e25,接近政府报告要求的一半。

我们可用的另一个比较点是查看所谓的 GPT-4 泄露信息,这些信息从未被证实,但如果真实,这大约是那些数字的 2 倍。

现在,还有很多其他因素影响模型的性能,这些因素无法仅用一张纸来概述。例如,数据质量尤其重要,但如果你必须将一个模型简化为一个数字,这就是你应该尝试的方法,因为它将模型的大小和训练长度结合起来,形成一个单一的“强度”指标,即投入其中的总 FLOPs 数。

References

[1]

Build the future of AI with Meta Llama 3: https://llama.meta.com/llama3

[2]

Llama-3-8B: https://huggingface.co/meta-llama/Meta-Llama-3-8B

[3]

Llama-3-8B-Instruct: https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct

[4]

Llama-3-70B: https://huggingface.co/meta-llama/Meta-Llama-3-70B

[5]

Llama-3-70B-Instruct: https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct

[6]

MMLU: https://paperswithcode.com/dataset/mmlu

[7]

HumanEval: https://paperswithcode.com/dataset/humaneval

[8]

Using 🤗 Transformers: https://huggingface.co/blog/llama3#using-%F0%9F%A4%97-transformers

[9]

MLX Community: https://huggingface.co/collections/mlx-community/llama-3-662156b069a5d33b3328603c

[10]

HuggingChat: https://huggingface.co/chat

[11]

Fine-tuning with 🤗 TRL: https://huggingface.co/blog/llama3#fine-tuning-with-%F0%9F%A4%97-trl

[12]

@DrJimFan: https://twitter.com/DrJimFan

[13]

openai/simple-evals: https://github.com/openai/simple-evals

[14]

@karpathy: https://x.com/karpathy/status/1781028605709234613

[15]

@lmsysorg: https://twitter.com/lmsysorg

[16]

Chinchilla: https://arxiv.org/abs/2203.15556

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存